package com.ruoyi.task.service.impl;

import java.util.List;

import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.task.constant.TaskConstant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.task.mapper.TaskMapper;
import com.ruoyi.task.domain.Task;
import com.ruoyi.task.service.ITaskService;

import static com.ruoyi.common.utils.SecurityUtils.getLoginUser;

/**
 * 任务创建Service业务层处理
 *
 * @author ruoyi
 * @date 2024-10-09
 */
@Service
public class TaskServiceImpl implements ITaskService {
    @Autowired
    private TaskMapper taskMapper;

    /**
     * 查询任务创建
     *
     * @param taskId 任务创建主键
     * @return 任务创建
     */
    @Override
    public Task selectTaskByTaskId(Long taskId) {
        return taskMapper.selectTaskByTaskId(taskId);
    }

    /**
     * 查询任务创建列表
     *
     * @param task 任务创建
     * @return 任务创建
     */
    @Override
    public List<Task> selectTaskList(Task task) {
        return taskMapper.selectTaskList(task);
    }

    /**
     * 新增任务创建
     *
     * @param task 任务创建
     * @return 结果
     */
    @Override
    public int insertTask(Task task) {
        //从SpringSecurity中拿到用户的数据
        LoginUser loginUser = getLoginUser();  //拿到登录的用户 id
        SysUser user = loginUser.getUser();
        task.setCreatedBy(user.getStudentId());
        task.setStatus(TaskConstant.proceed);
        return taskMapper.insertTask(task);
    }

    /**
     * 修改任务创建
     *
     * @param task 任务创建
     * @return 结果
     */
    @Override
    public int updateTask(Task task) {
        return taskMapper.updateTask(task);
    }

    /**
     * 批量删除任务创建
     *
     * @param taskIds 需要删除的任务创建主键
     * @return 结果
     */
    @Override
    public int deleteTaskByTaskIds(Long[] taskIds) {
        return taskMapper.deleteTaskByTaskIds(taskIds);
    }

    /**
     * 删除任务创建信息
     *
     * @param taskId 任务创建主键
     * @return 结果
     */
    @Override
    public int deleteTaskByTaskId(Long taskId) {
        return taskMapper.deleteTaskByTaskId(taskId);
    }
}
